package com.aaa.springboot_rbac.service.impl;

import com.aaa.springboot_rbac.dao.DeptDao;
import com.aaa.springboot_rbac.entity.Dept;
import com.aaa.springboot_rbac.service.DeptService;
import com.aaa.springboot_rbac.util.CustomException;
import com.aaa.springboot_rbac.util.Page;
import com.aaa.springboot_rbac.util.ResultStatus;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @FileName: DeptServiceImpl
 * @Description:
 * @Author: 张钰哲
 * @CreateTime: 2025/8/21 14:31
 * @Version: 1.0.0
 */
@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptDao deptDao;


    @Override
    public Dept queryById(Integer deptNo) {
        return deptDao.queryById(deptNo);
    }

    @Override
    public int add(Dept dept) {
        return deptDao.add(dept);
    }

    @Override
    public int update(Dept dept) {
        return deptDao.update(dept);
    }

    @Override
    public int deleteById(Integer deptNo) {
        return deptDao.deleteById(deptNo);
    }

    @Override
    public PageInfo queryByPage(Page<Dept> page) {
        Integer pageNo = page.getPageNo();
        Integer pageSize = page.getPageSize();
        if (pageNo == null || pageSize == null||pageNo == 0||pageSize == 0) {
            // 说明传入的 参数 的 数值 不符合规范。 直接抛出异常,程序直接停止运行
            //throw new IllegalArgumentException("参数异常！！！！");

            throw new CustomException(ResultStatus.PARAM_ISNULL.getStatusCode(), ResultStatus.PARAM_ISNULL.getStatusMsg());
        }
        // 调用PageHelper设置参数方法，开始分页
        PageHelper.startPage(pageNo,pageSize);
        // 获取page类的 data 属性，该属性 是Dept类型
        Dept data = page.getData();
        // 调用dao层查询
        List<Dept> deptList = deptDao.queryByParam(data);
        // 使用查询结果封装成返回对象
        return new PageInfo(deptList);
    }
}
